def sieve_of_eratosthenes(N):
    is_prime = [True] * (N + 1)
    is_prime[0] = is_prime[1] = False  # 0 和 1 不是素数

    for p in range(2, int(N ** 0.5) + 1):
        if is_prime[p]:
            for multiple in range(p * p, N + 1, p):
                is_prime[multiple] = False

    return [i for i, prime in enumerate(is_prime) if prime]


# 示例：找出小于或等于 50 的所有素数
prime_numbers = sieve_of_eratosthenes(5000)
print(prime_numbers)


def check_prime(input_num):
    if input_num <= 2:
        return False
    for i in range(2, int(input_num ** 0.5) + 1):
        if input_num % i == 0:
            return False
    return True


print("数字4951,{}，".format(check_prime(4951)))
